nvm malloc: Memory Allocation for NVRAM
نویسندگان
چکیده
Non-volatile main memory (NVRAM) has the potential to fundamentally change the persistency of software. Applications can make their state persistent by directly placing data structures on NVRAM instead of volatile DRAM. However, the persistent nature of NVRAM requires significant changes for memory allocators that are now faced with the additional tasks of data recovery and failure-atomicity. In this paper, we present nvm malloc, a general-purpose memory allocator concept for the NVRAM era as a basic building block for persistent applications. We introduce concepts for managing named allocations for simplified recovery and using volatile and non-volatile memory in combination to provide both high performance and failure-atomic allocations.
منابع مشابه
Eager Acquisition
In most operating systems, operations such as dynamic memory allocation can be very expensive. The time it takes for memory allocations via operations like "malloc" depends on the implementation of the operations. If the telecommunication application is supposed to run on a non-real-time operating system, the time to execute malloc will vary even if the same size of memory is to be acquired. Ru...
متن کاملAre Mallocs Free of Fragmentation?
Malloc(3) is considered to be a robust building block. However, we found that many malloc implementations su er from excessive heap fragmentation when used with Hummingbird, a long-running application which stores a large number of xed-sized and variable-sized objects in dynamic memory. This paper characterizes the dynamic memory activity pattern of Hummingbird and GNU Emacs. It compares the be...
متن کاملmalloc(3) Revisited
malloc (3) is one of the oldest parts of the C language environment and not surprisingly the world has changed a bit since it was first conceived. The fact that most UNIX kernels have changed from swap/segment to virtual memory/page based memory management has not been sufficiently reflected in the implementations of the malloc/free API. Anew implementation was designed, written, tested and ben...
متن کاملA Scalable Concurrent malloc(3) Implementation for FreeBSD
The FreeBSD project has been engaged in ongoing work to provide scalable support for multi-processor computer systems since version 5. Sufficient progress has been made that the C library’s malloc(3) memory allocator is now a potential bottleneck for multi-threaded applications running on multiprocessor systems. In this paper, I present a new memory allocator that builds on the state of the art...
متن کاملMalloc() Performance in a Multithreaded Linux Environment
Network servers make special demands that other types of applications may not make on memory allocators. We describe a simple malloc() microbenchmark suite that tests the ability of malloc() to divide its work efficiently among multiple threads and processors. The purpose of this suite is to determine the suitability of an operating system’s heap allocator for use with network servers running i...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2015